/** 
 * JPanel gibt den Inhalt der Datenfelder eines Verlages zurueck.
 * 
 * Datei: PanelgibVerlag.java     Autor: Simon Schindelmann 
 * Datum: 09.12.11                Version: 0.1
 * 
 */
package medienverwaltung.simulation;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import kommunikation.Email;
import kommunikation.Telefonnummer;
import kommunikation.Wohnsitzadresse;
import medienverwaltung.Verlag;
import medienverwaltung.Verlagsverwalter;


public class PanelgibVerlag extends JPanel
{
  private static final long serialVersionUID = 5684870915278452341L;
  //Speichert die aktuelle Sprache die verwendet wird.
  Uebersetzung uebersetzung = Uebersetzung.gibSprache ();
  JPanel panel1, panel2;
  JLabel verlag;
  JTextField txt_verlag;
  JButton gibVerlag;
  JTextArea text;
  JScrollPane scrollPane;

  /**
   * Das Layout wird gesetzt und die Labels, Textfelder und Buttons 
   * werden initialisiert und dem JPanel hinzugefuegt.
   */
  public PanelgibVerlag ()
  {
    init ();
    panel1.setLayout (new GridLayout (1, 3));
    panel2.setLayout (new GridLayout (1, 1));
    setLayout (new GridLayout (2, 1));
    add (panel1);
    add (panel2);
    panel1.add (verlag);
    panel1.add (txt_verlag);
    panel1.add (gibVerlag);
    panel2.add (new JScrollPane (text));
  }


  /**
   * Hier werden die Labels, Textfelder, Buttons und ActionListener 
   * initialisiert.
   */
  public void init ()
  {
    verlag = new JLabel ("  " + uebersetzung.lokal
        .gibUebersetzung ("Verlagsname") + ": ");
    txt_verlag = new JTextField ();
    gibVerlag = new JButton (uebersetzung.lokal
        .gibUebersetzung ("gib Verlag"));
    text = new JTextArea ();
    text.setEditable (false);
    panel1 = new JPanel ();
    panel2 = new JPanel ();

    gibVerlag.addActionListener (new ActionListener ()
    {
      public void actionPerformed (ActionEvent e)
      {
          try
          {
            gibVerlag ();
          }
          catch (NullPointerException e1)
          {
            JOptionPane.showMessageDialog (null, "" + uebersetzung.
        	lokal.gibUebersetzung ("Dieser Verlag existiert nicht"), 
        	null, JOptionPane.WARNING_MESSAGE);
          }
      }
    });
  }


  /**
   * Holt sich alle Daten des Objektes, speichert sie in Strings und
   * gibt sie aus.
   */
  public void gibVerlag ()
  {
    Verlagsverwalter vw = new Verlagsverwalter ();
    Verlag v;
    ArrayList<Wohnsitzadresse> wsa;
    ArrayList<Telefonnummer> telefon;
    ArrayList<Email> email;
    String name, adressen = "", telefonnummern = "", emailadressen = "";

    if (txt_verlag.getText ().isEmpty () == true)
    {
      txt_verlag.setText ("  " + uebersetzung.lokal
	  .gibUebersetzung ("Fehler Feld Verlagsname ist leer"));
    }
    else
    {
      v = vw.gibVerlag (txt_verlag.getText ());
      wsa = v.gibAdresse ();
      telefon = v.gibTelefonnummer ();
      email = v.gibEmail ();
      name = v.gibName ();

      for (Wohnsitzadresse w : wsa)
      {
        adressen = adressen + "\n  Adresse: " + "\n  Ort: "
            + w.gibOrt () + "\n  PLZ: " + w.gibPLZ () + "\n  Strasse: "
            + w.gibStrasse () + "\n  Hausnummer: "
            + w.gibGesamteHausnummer () + "\n";
      }

      for (Telefonnummer t : telefon)
      {
        telefonnummern = telefonnummern + "\n  Telefonnummer: "
            + t.gibTelefonnummer ();
      }

      for (Email e : email)
      {
        emailadressen = emailadressen + "\n  Emailadresse: "
            + e.gibEmail ();
      }

      text.setText ("  "
          + uebersetzung.lokal.gibUebersetzung ("Verlagsname") + ": "
          + name + "\n" + "  "
          + uebersetzung.lokal.gibUebersetzung ("Adressen") + ": "
          + "\n" + adressen + "\n" + "  "
          + uebersetzung.lokal.gibUebersetzung ("Telefonnummern")
          + ": " + telefonnummern + "\n\n" + "  "
          + uebersetzung.lokal.gibUebersetzung ("Emailadressen") + ": "
          + emailadressen);
    }
  }
}
